function charLimit(fid, countfield, maxlimit){
    $fid = $("#" + fid);
    
    if ($fid.val().length > maxlimit) {
        $fid.val($fid.val().substring(0, maxlimit));
    }
    else {
        $('#' + countfield).html(maxlimit - $fid.val().length);
    }
    return false;
}

function notEmpty(id){
    $id = $("#" + id);
    $val = $id.val();
    if ($val == "") {
        return false;
    }
    else {
        return true;
    }
}

function defaultText(){
    var alt = $(this).attr("alt"), txt = $(this).val();
    $.each(this, function(){
        $(this).focus(function(){
            $(this).val("");
        });
        $(this).blur(function(){
            if (txt == "" || txt == alt) 
                $(this).val(alt);
        });
    });
}

function getSeccode(seccodeid){
    $("#" + seccodeid).attr("src", "/verifycode.php?act=init&i=" + Math.random().toString());
    return false;
}

function checkYzm(yzm){
    var flag = false;
    $.ajax({
        url: "/common/validateYzm",
        data: {
            "seccode": yzm
        },
        type: 'POST',
        async: false,
        cache: false,
        success: function(data){
            if (data == "0") {
                $.facebox("验证码不正确哦！");
            }
            else {
                flag = true;
            }
        }
    });
    return flag;
}

function resetForm(){
    $("form").find(':text,textarea').each(function(item){
        $(this).val("");
        $(this).empty();
    });
}

function max(arr){
    var $max = arr[0];
    for (var i = arr[1]; i < arr.length; i++) {
        if ($max < i) {
            $max = i;
        }
    }
    return $max;
}

function is_require_check(){
    var $entry = $("[mark='require']").parents(".form-entry:visible").has(":checkbox,:radio");
    var flag = true;
    $entry.each(function(){
        if ($(this).find(":checked").length == 0) {
            flag = false;
        }
    });
    return flag;
}

$(function(){

    $("#yzm").one("focus", function(){
        getSeccode('verifyCodeImage');
        $("#yzm_wrap").fadeIn(500);
    });
    
    $("#submit_form").click(function(){
        var $text = $("[mark='require']").parents(".form-entry").find('.widget_entry :text:not([mark="other"]),.widget_entry textarea');
        for (var i = 0; i < $text.length; i++) {
            if ($($text[i]).val() == "" || !is_require_check) {
                $.facebox("必填项不能为空哦！");
                return false;
            }
        }
        
        if (!is_require_check()) {
            $.facebox("必填项不能为空哦！");
            return false;
        }
        
        $check_other = $(":checked[mark^='other']");
        for (var i = 0; i < $check_other.length; i++) {
            var $txt = $($check_other[i]).parent('li').find(":text[mark='other']");
            if ($txt.val() == "") {
                $.facebox("列表问题的“其他”项没有填写哦！");
                return false;
            }
        }
        
        if (!notEmpty('yzm')) {
            $.facebox("验证码不能为空哦！");
            return false;
        }
        if ($("#yzm").val().length < 4) {
            $.facebox("验证码位数不够哦！");
            return false;
        }
        if (!checkYzm($("#yzm").val())) {
            return false;
        }
        
        $form = $(this).parents("form");
        $.ajax({
            url: $form.attr('action'),
            type: "POST",
            data: $form.serialize(),
            success: function(data){
                $.facebox(data);
                getSeccode('verifyCodeImage');
                resetForm();
                setTimeout(function(){
                    $(document).trigger('close.facebox')
                }, 1500);
            },
            error: function(data){
                $.facebox(data);
            }
        });
        
        //$(this).parents("form").submit();
    });
    
    var first_jump;
    $(".form-entry[is_Goto='1']").each(function(){
        $cur_id = parseInt($(this).attr('entry_id'));
        $position = parseInt($(this).attr('id')) + 1;
        $entry_num = $(".form-entry").length;
        
        var page = [];
        $(":radio[name='" + $cur_id + "']").each(function(){
            if ($(this).attr('gotopage')) {
                page.push($(this).attr('gotopage'));
            }
        });
        var maxPageNum = max(page);
        
        $(":radio[name=" + $cur_id + "]").click(function(){
            if ($(this).is(":checked")) {
                var curent_pos = parseInt($(this).parents(".form-entry").attr("id")) + 1;
                var gotopage = parseInt($(this).attr('gotopage'));
                $(".form-entry[id]").each(function(){
                    var pos = parseInt($(this).attr("id")) + 1;
                    var uppers = [];
                    var downs = [];
                    if ((curent_pos < pos) && (pos < gotopage)) {
                        uppers.push(this);
                    }
                    else {
                        downs.push(this);
                    }
                    $(uppers).slideUp(0, function(){
                        $(uppers).each(function(){
                            if ($(this).attr("is_Goto") == '1') {
                                $(this).find(":radio").removeAttr('checked');
                            }
                        });
                    });
                    $(downs).slideDown(60);
                    
                });
                
            }
        });
        
    });
    first_jump = $(".form-entry[is_Goto='1']").eq(0).attr("entry_id");
    $(":radio[name=" + first_jump + "]:checked").triggerHandler('click');
    
});
